Computational Vision:Psy 5036

Assignment #3: Programming Illusions

SetOptions[ArrayPlot,ColorFunction->"GrayTones",DataReversed->True,Frame->False,AspectRatio->Automatic,Mesh->False,PixelConstrained->{1,1},ImageSize->Small];

Choose just one of the two problems below

Problem 1

Problem 1a: Write a Mathematica program to make a demonstration that illustrates adaptation to image blur. (See "bluradaptiondemo" on class web page.) " demo on class web page)

The class web page has an example taken from Webster et al. (2002). Instead of using the girl's face that they used, you should use a different source image (i.e. one from the class web page or another one of your choosing).
Make a test image that has the  identical source image on the left and right side of a fixation, similar to that shown below.

Now make the "adapt" image, where the left side is a low-pass filtered version of the original source image, and the right-side is the complementary high-pass filtered version. (Hint: the complementary high-pass version is the original image minus the blurred one). The "adapt" image should be similar to the one shown below.

Now make a movie in which you: a) show the test image for about 3 seconds, b) followed by the adapt image for 10 seconds, c) followed by the test image again but now for at least three seconds. 
You can either show the movie within a Mathematica program (e.g. using ListAnimate[]) or alternatively make a sequence of frames to export as a movie file. For example, if you have a list of graphics images, glist = {g1,g2,g3}, where g1 = ArrayPlot[image1], g2 = ArrayPlot[image2], etc., you can use Export["test.avi", glist] to save the list of graphics as an avi formatted movie. It will be saved to your default directory. (Recall that you can use Directory[] to find the current default). You could also use the Image[] function instead of ArrayPlot to produce images.

Problem 1b: Pose a scientific question about blur adaptation, and describe in one paragraph an experiment you could do to answer it.

Take a look at the paper by Webster et al. (2002) to get ideas about unanswered questions on the topic. Check to see if any of the authors have web pages with related work.

Webster, M. A., Georgeson, M. A., & Webster, S. M. (2002). Neural adjustments to image blur. Nature Neuroscience, 5(9), 839-840.

Problem 2

Problem 2: Write a Mathematica program to demonstrate motion-induced blindness. (See "motion-induced-blindness demo" on class web page.)"). 
Hint: Instead of the swirling dots in the example, you can use random dots as shown here:

You don't need to  make the blue dots swirl exactly as in the demo, and you should feel free to try random motions, or 2D circular motions, or 3D motions (as in the class web page demo.) 
As described above, you can either show the movie within a Mathematica program (e.g. using ListAnimate[], see example frame below) or alternatively make a sequence of frames to export  as a movie file. For example, if you have a list of graphics images, glist = {g1,g2,g3}, where g1 = ArrayPlot[image1], g2 = ArrayPlot[image2], etc., you can use Export["test.avi", glist] to save the list of graphics as an avi formatted movie. It will be saved to your default directory. (Recall that you can use Directory[] to find the current default).

Problem 2b: Pose a scientific question about motion-induced blindness, and describe an experiment in one paragraph you could do to answer it.

Take a look at the paper by Bonneh et al. (2001) to get some ideas. You could also do a literature or web search to look for follow-up work, or other studies done by the same authors.

Bonneh, Y. S., Cooperman, A., & Sagi, D. (2001). Motion-induced blindness in normal observers. Nature, 411(6839), 798-801.